Spire C/C++

Embedded systems solutions for complex C and C++ applications



Rational's Spire(TM) family of C/C++ cross-development systems consists of mature, production-quality, optimizing cross-compilers and related tools to help you compile, debug, tune, and deliver your application. Spire C/C++ is available for most popular embedded-systems targets. All Spire C/C++ cross-development systems are built from a common code base, so they offer a common user interface and common functionality across all host platforms and embedded targets. Spire C/C++ products are fundamental components of Rational's modern, software-engineering solution, comprising software processes, integrated software-development tools, and professional services. The complete Rational solution gives you control of your software-development efforts and sharpens your competitive edge.

Satisfies every C/C++ embedded and real-time application need

Spire C/C++ provides comprehensive, easy-to-use support for host-to-target development of real-time embedded systems requiring the use of C or C++. The Spire C/C++ family supports the proposed ANSI C++ standard, ANSI C, and K&R C. Each member of the Spire family is available in two forms: Spire C for projects using only C and Spire C/C++ for projects mixing C and C++ or moving from C to C++. The Spire C/C++ family includes all the tools needed for fast, efficient cross development.

Brings you higher development productivity

Each Spire product includes--in addition to the cross-compiler--a code optimizer, a Motif-based symbolic debugger, a disassembler, a set of ANSI C and/or ANSI C++ standard libraries, and extensive online help. Spire C/C++ also includes a compilation library manager that helps you organize the components of a large program by establishing multiple libraries based on your specific project needs. The ANSI C and C++ libraries included in every Spire solution work on top of SpireExec(TM) and other real-time kernels.

Optimizes your code for high performance

Spire C/C++ compilers are optimizing compilers that give you the performance you need for demanding embedded applications. Each Spire C/C++ compiler offers ten different user-selectable levels of code optimization. Optimization techniques include: Spire C/C++ code generators for RISC architectures perform additional instruction scheduling, and the code generators for all architectures generate hardware floating-point instructions when appropriate. Spire produces code that is fast, compact, and efficient. It minimizes the size of your application and maximizes its performance.

Reduces turnaround time and application size dramatically

Even though the Spire compilers are very fast, linking large programs can be a bottleneck. To solve this problem, the Spire cross-linker was designed to be fast, so you can quickly edit, compile, link, and then test your code. For instance, Spire minimizes object file symbolics to reduce the amount of work the linker must do. The Spire cross-linker's selective linking capability, a significant advantage, creates the smallest possible executable by including only the subprograms and data your application requires. This capability can be quite important when used in conjunction with C++ development where class libraries can be very large. Selective linking can effectively remove members not used in the executable and make class libraries far more practical for embedded systems.

Features flexible, complete download and board support packages

Spire products come with a complete host-to-target, embedded-systems-oriented feature set to make your download-execute-debug cycle easier. Different download communication options are available to meet your specific needs, including coverage for Ethernet, serial, emulator, simulator, or custom use. Sample configurations for serial and Ethernet download are included in the product.

Complete off-the-shelf board support packages (BSPs) are available for some of the most popular boards for each microprocessor family. Spire includes sample source code of the available BSPs if you need to customize hardware support. And it's easy to integrate the provided BSPs with your own compilation, linking, download, and debug strategy.

Provides a high-performance real-time kernel option

Rational supplies an optional, compact real-time kernel called SpireExec. It is an implementation of the POSIX threads standard and is fully compliant with POSIX 1003.1c. SpireExec supports real-time primitives such as mailboxes, semaphores, interrupt service routines, and multiple programs to give you more control over your real-time applications. SpireExec offers flexible memory management, I/O support, timer support, and support for intraprogram synchronization using POSIX threads. The small, fast, and efficient SpireExec can be easily configured and tailored to customized target systems. SpireExec is also ROMable and scales in size according to the features required by your application.

Supports your favorite off-the-shelf, third-party, real-time solution

Spire C/C++ products can be used in conjunction with other real-time products. SpireWorks(TM) C/C++, a member of the Spire family, supports Wind River System's VxWorks by handling debugging of VxWorks real-time tasks. This operating-system-aware debug facility greatly enhances your ability to compile, link, and debug real-time applications using the VxWorks operating system. Real-time solutions from other vendors are planned in the future. Contact Rational for further availability information.

Offers a powerful, nonintrusive debugger

Spire C/C++ products include a Motif-based windowing symbolic debugger. Because the Spire debugger gets its symbolic information from the compilation library instead of from your executables, you can debug without recompiling.

The Spire debugger fully supports source-level and machine-level debugging. Primary debugger features include:

The Spire debugger allows interactive subprogram calls and character I/O from the target, so you can write and use sophisticated debugging instrumentation subprograms. It provides extensive command logging and scripting capabilities to automate your debugging activities and make them reproducible. The debugger understands all Spire runtime options, giving you a single, consistent debugger model even if you use the additional real-time mechanisms provided by SpireExec. Using the browsing capabilities of the Spire debugger, you can quickly understand the behavior of your program.




The Motif-based Spire C/C++ debugger is powerful, flexible, and easy to use.


Debugs optimized code

With Spire, you debug the fully optimized code that will run in your fielded application. You never need to recompile your code with optimizations turned off to use the debugger. You save time and have increased confidence in your application because you can debug the executable you will deploy.




The combination of Spire C/C++ and SpireSim allows testing on your host
and full support for developing for the target.


Debugs your embedded systems in real time

The Spire cross-compilers include the Spire debugger in cross-development mode to make it easy to test and debug embedded systems. You download and debug directly from the host, choosing the host-to-target communications link that best meets your project's needs: RS232, Ethernet, or emulator. Because the target debug monitor is a stand-alone, system-level debugging agent, you can debug at the lowest levels--interrupt service routines or kernel configuration code--not just at the application level. The Spire symbolic debugger can also serve as the interface for your in-circuit emulator. Trace buffers record signals from every buffer cycle out of the CPU, so you can review the buffer and analyze the course of debugging.

Provides multiplatform support

The entire Spire family is built from a shared base of source code. The "look and feel," compiler details, debugger operations, interface to the runtime executive, and most other product features are identical for Spire on all platforms.

The hardware independence of Spire enables you to work on the hardware of your choice, to share software among dissimilar hardware systems, and to develop software programs on multiple hosts. Source code, scripts, and makefiles are extremely portable from one member of the Spire family to another. You can change host or target hardware as your requirements change, without changing your application code or retraining your development team.

Brings you field-proven reliability

Code generation, debug, and runtime technologies in the Spire C/C++ compiler family have been successfully used for over ten years, both in-house at Rational and on some of the world's most demanding software projects. They have been proven on projects ranging from thousands to millions of lines of code.

From the shipment of our first products over a decade ago, Rational Software Corporation has focused on maximizing customer productivity and providing the precision, scalability, and robustness that programmers expect from their tools. Spire C/C++ reflects our experience in supporting some of the largest, most sophisticated applications worldwide. We have designed, refined, and expanded Spire to implement features demanded by real-world programmers. Spire meets the most stringent program needs, because we have paid attention to the performance demands of our customers.

Works with other tools to provide a complete solution

Spire allows you to work with your favorite standard UNIX tools, such as make, lex, yacc, and tags. It provides messages suitable for either emacs or vi editors. And the Spire family also includes optional tools to give you an even more complete development solution.

SpireAnalysis(TM) gives you nonintrusive coverage analysis, performance profiling, and program tracing and debugging capabilities to help you rapidly understand and tune your application's behavior.

SpireSim(TM) provides efficient, instruction-level simulation of major target architectures, allowing you to develop and test your program on the host system even before your embedded hardware is available. You can use the Spire debugger in concert with SpireSim to analyze and debug your application as it runs on the simulator, just as you would use the debugger on a program running on the embedded hardware. SpireSim:

Provides a scalable and upgradable path to Rational's development environment products

Rational Apex(R) C/C++ combines a graphical user interface with powerful development and code-management tools to provide an unmatched environment to handle the most challenging C/C++ application-development projects. Rational Apex C/C++ helps enforce your software architecture and control parallel development by teams of software engineers, resulting in cost reduction, minimization of risks, and improvement in the quality of your software. And because Spire C/C++ products use the same front-end, code generation, and debugger technology integral to Rational Apex C/C++, the transition from the Spire cross-compilation system to the full Rational Apex C/C++ environment is easy. You can start with Spire C/C++ and grow into the Rational Apex C/C++ environment when your project or staff begins to scale up.

Available development platforms

Spire C/C++ cross-compilers are available for popular host and target platforms, including SPARC-based systems running SunOS or Solaris, HP 9000 Series 700/800 systems running HP-UX, and Digital Alpha AXP systems running Digital UNIX. Please contact your Rational representative for an up-to-date list of other supported platforms.

Multitarget processor support

The Spire C/C++ family supports most of the popular microprocessors and microcontrollers on the market today.

68K family

MC68020
MC68EC020
MC68030
MC68EC030
MC68040
MC68EC040
MC68LC040
MC68060

CPU-32 family

MC68330
MC68331
MC68332
MC68333
MC68340
MC68360

MIPS R3000/R4000 family

R3000
R3001
R3041
R3051
R3052
R3081
R3500
R3800
LR33000
LR33020
LR33050
R4000
R4200
R4400
R4600

PowerPC family

601
603
604
620
(400, 500 series support planned*)

Intel x86 family

(i386, i486, Pentium support planned*)

* Contact Rational for further availability information.


D-145; last updated 10/2/95